#ifndef _DOUBLELIST_HEAD_
#define _DOUBLELIST_HEAD_

//双向循环链表
typedef struct node{
	void* data;  //数据域指针
	struct node *prior,*next;
}dnode_t,*dlist_t;

//创建一个双向循环链表的头节点
dlist_t create_doublelist(void);
//双向循环链表插入
int insert_head_doublelist(dlist_t h,void* data);
int is_empty_doublelist(dlist_t h);
int cmp_void(void* xa,void* xb,int size_num);

/**
 * 从链表中删除一个数据
 * h 链表头
 * x 需要删除数据域指针
 * num 数据长度 可用sizeof获取
 */
void* delete_doublelist(dlist_t h,void *x,int size_num);


#endif
